package com.ruoyi.worker.service;

import com.ruoyi.worker.domain.CycleSchedule;
import com.ruoyi.worker.domain.TermSchedule;
import com.ruoyi.worker.domain.UserSchedule;

import java.util.List;
import java.util.Map;

public interface TermScheduleService {
    /**
     * 查询排班表记录列表
     * @author 刘松山
     * @date 2021/10/14 20:34
     * @param t
     * @return java.util.List<com.ruoyi.worker.domain.TermSchedule>
     */
    List<TermSchedule> listTermSchedule(TermSchedule t);
    /**
     * 新增排班记录
     * @author 刘松山
     * @date 2021/10/14 20:34
     * @param t
     * @return int
     */
    int addTermSchedule(TermSchedule t);
    /**
     * 修改排班记录
     * @author 刘松山
     * @date 2021/10/14 20:34
     * @param t
     * @return int
     */
    int modifyTermSchedule(TermSchedule t);
    /**
     * 只修改状态
     * @author 刘松山
     * @date 2021/10/20 10:55
     * @param t
     * @return int
     */
    int modifyTermScheduleStatus(TermSchedule t);
    /**
     *
     * @author 刘松山
     * @date 2021/10/14 20:34
     * @param ids
     * @return int
     */
    int delBacthTermSchedule(Long[] ids);
    /**
     * 获取排班记录详细信息
     * @author 刘松山
     * @date 2021/10/14 20:34
     * @param id
     * @return com.ruoyi.worker.domain.TermSchedule
     */
    TermSchedule getTermSchedule(long id);
    /**
     * 获取周期排班列表
     * @author 刘松山
     * @date 2021/10/15 13:09
     * @return java.util.List<com.ruoyi.worker.domain.CycleSchedule>
     */
    List<CycleSchedule> listCycleSchedule();
    /**
     * 获取排班人员
     * @author 刘松山
     * @date 2021/10/16 14:45
     * @param param
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     */
    List<Map<String,Object>> listUserSchedule(Map<String,Object> param);

    /**
     * 获取排班人员信息
     * @param param
     * @return
     */
    List<Map<String,Object>> listUserScheduleList(Map<String,Object> param);
    /**
     * 保存周期排班记录
     * @author 刘松山
     * @date 2021/10/17 9:11
     * @param list
     * @return int
     */
    int addCycleSchedule(List<CycleSchedule> list);

    /**
     * 查询用户时间内的要排班的信息是否已经存在了
     * @author 刘松山
     * @date 2021/10/22 9:53
     * @param t
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     */
    List<UserSchedule> listuserDateSchedule(TermSchedule t);
}
